home *** CD-ROM | disk | FTP | other *** search
/ Hackers Magazine 57 / CdHackersMagazineNr57.iso / Software / Programming / nsis-2.46-setup.exe / Contrib / Modern UI 2 / Pages / Finish.nsh < prev    next >
Encoding:
Text File  |  2009-06-06  |  16.6 KB  |  492 lines

  1.  /*
  2.  
  3. NSIS Modern User Interface
  4. Finish page (implemented using nsDialogs)
  5.  
  6. */
  7.  
  8. ;--------------------------------
  9. ;Page interface settings and variables
  10.  
  11. !macro MUI_FINISHPAGE_INTERFACE
  12.  
  13.   !ifndef MUI_FINISHPAGE_INTERFACE
  14.     !define MUI_FINISHPAGE_INTERFACE
  15.     Var mui.FinishPage
  16.         
  17.     Var mui.FinishPage.Image
  18.     Var mui.FinishPage.Image.Bitmap
  19.     
  20.     Var mui.FinishPage.Title
  21.     Var mui.FinishPage.Title.Font
  22.     
  23.     Var mui.FinishPage.Text
  24.   !endif
  25.  
  26.   !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT
  27.     !ifndef MUI_FINISHPAGE_RETURNVALUE_VARIABLES
  28.       !define MUI_FINISHPAGE_RETURNVALUE_VARIABLES
  29.       Var mui.FinishPage.ReturnValue
  30.     !endif
  31.   !else ifdef MUI_FINISHPAGE_RUN | MUI_FINISHPAGE_SHOWREADME
  32.     !ifndef MUI_FINISHPAGE_RETURNVALUE_VARIABLES
  33.       !define MUI_FINISHPAGE_RETURNVALUE_VARIABLES
  34.       Var mui.FinishPage.ReturnValue
  35.     !endif 
  36.   !endif
  37.     
  38.   !ifdef MUI_FINISHPAGE_CANCEL_ENABLED
  39.     !ifndef MUI_FINISHPAGE_CANCEL_ENABLED_VARIABLES
  40.       !define MUI_FINISHPAGE_CANCEL_ENABLED_VARIABLES
  41.       Var mui.FinishPage.DisableAbortWarning
  42.     !endif  
  43.   !endif
  44.   
  45.   !ifdef MUI_FINISHPAGE_RUN
  46.     !ifndef MUI_FINISHPAGE_RUN_VARIABLES
  47.       !define MUI_FINISHPAGE_RUN_VARIABLES
  48.       Var mui.FinishPage.Run
  49.     !endif
  50.   !endif
  51.   
  52.   !ifdef MUI_FINISHPAGE_SHOWREADME
  53.     !ifndef MUI_FINISHPAGE_SHOREADME_VARAIBLES
  54.       !define MUI_FINISHPAGE_SHOREADME_VARAIBLES
  55.       Var mui.FinishPage.ShowReadme
  56.     !endif
  57.   !endif
  58.   
  59.   !ifdef MUI_FINISHPAGE_LINK
  60.     !ifndef MUI_FINISHPAGE_LINK_VARIABLES
  61.       !define MUI_FINISHPAGE_LINK_VARIABLES
  62.       Var mui.FinishPage.Link
  63.     !endif
  64.   !endif
  65.   
  66.   !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT
  67.     !ifndef MUI_FINISHPAGE_REBOOT_VARIABLES
  68.       !define MUI_FINISHPAGE_REBOOT_VARIABLES
  69.       Var mui.FinishPage.RebootNow
  70.       Var mui.FinishPage.RebootLater
  71.     !endif
  72.   !endif
  73.  
  74.   !insertmacro MUI_DEFAULT MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp"  
  75.  
  76. !macroend
  77.  
  78.  
  79. ;--------------------------------
  80. ;Interface initialization
  81.  
  82. !macro MUI_FINISHPAGE_GUIINIT
  83.  
  84.   !ifndef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_GUINIT
  85.     !define MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_GUINIT
  86.  
  87.     Function ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPage.GUIInit
  88.   
  89.       InitPluginsDir  
  90.       File "/oname=$PLUGINSDIR\modern-wizard.bmp" "${MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_BITMAP}"
  91.     
  92.       !ifdef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_GUIINIT
  93.         Call "${MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_GUIINIT}"
  94.       !endif
  95.       
  96.       !ifndef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}FINISHPAGE_NOAUTOCLOSE
  97.         SetAutoClose true
  98.       !endif
  99.     
  100.     FunctionEnd
  101.   
  102.     !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_GUIINIT ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPage.GUIInit
  103.     
  104.   !endif    
  105.  
  106. !macroend
  107.  
  108.  
  109. ;--------------------------------
  110. ;Abort warning
  111.  
  112. !macro MUI_FINISHPAGE_ABORTWARNING
  113.  
  114.   !ifdef MUI_FINISHPAGE_CANCEL_ENABLED
  115.   
  116.     !ifndef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}FINISHPAGE_ABORTWARNING
  117.       !define MUI_${MUI_PAGE_UNINSTALLER_PREFIX}FINISHPAGE_ABORTWARNING
  118.  
  119.       Function ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPage.AbortWarning
  120.  
  121.         ${if} $mui.FinishPage.DisableAbortWarning == "1"
  122.           Quit
  123.         ${endif}
  124.       
  125.         !ifdef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_ABORTWARNING
  126.           Call ${MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_ABORTWARNING}
  127.         !endif
  128.   
  129.       FunctionEnd
  130.     
  131.       !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_ABORTWARNING ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPage.AbortWarning
  132.     
  133.     !endif
  134.   
  135.   !endif
  136.  
  137. !macroend
  138.  
  139.  
  140. ;--------------------------------
  141. ;Page declaration
  142.  
  143. !macro MUI_PAGEDECLARATION_FINISH
  144.  
  145.   !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}FINISHPAGE ""
  146.   !insertmacro MUI_FINISHPAGE_INTERFACE
  147.   
  148.   !insertmacro MUI_FINISHPAGE_GUIINIT
  149.   !insertmacro MUI_FINISHPAGE_ABORTWARNING
  150.  
  151.   !insertmacro MUI_DEFAULT MUI_FINISHPAGE_TITLE "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_INFO_TITLE)"
  152.   !insertmacro MUI_DEFAULT MUI_FINISHPAGE_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_INFO_TEXT)"
  153.   !insertmacro MUI_DEFAULT MUI_FINISHPAGE_BUTTON "$(MUI_BUTTONTEXT_FINISH)"
  154.   !insertmacro MUI_DEFAULT MUI_FINISHPAGE_TEXT_REBOOT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_INFO_REBOOT)"
  155.   !insertmacro MUI_DEFAULT MUI_FINISHPAGE_TEXT_REBOOTNOW "$(MUI_TEXT_FINISH_REBOOTNOW)"
  156.   !insertmacro MUI_DEFAULT MUI_FINISHPAGE_TEXT_REBOOTLATER "$(MUI_TEXT_FINISH_REBOOTLATER)"
  157.   !insertmacro MUI_DEFAULT MUI_FINISHPAGE_RUN_TEXT "$(MUI_TEXT_FINISH_RUN)"
  158.   !insertmacro MUI_DEFAULT MUI_FINISHPAGE_SHOWREADME_TEXT "$(MUI_TEXT_FINISH_SHOWREADME)"
  159.   !insertmacro MUI_DEFAULT MUI_FINISHPAGE_LINK_COLOR "000080"
  160.  
  161.   !insertmacro MUI_PAGE_FUNCTION_FULLWINDOW
  162.  
  163.   PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom
  164.  
  165.     PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPage.Pre_${MUI_UNIQUEID} \
  166.       ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPage.Leave_${MUI_UNIQUEID}
  167.  
  168.     Caption " "
  169.  
  170.   PageExEnd
  171.  
  172.   !insertmacro MUI_FUNCTION_FINISHPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPage.Pre_${MUI_UNIQUEID} \
  173.     ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPage.Leave_${MUI_UNIQUEID} \
  174.     ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPage.Link_${MUI_UNIQUEID}
  175.  
  176.   !insertmacro MUI_UNSET MUI_FINISHPAGE_TITLE
  177.   !insertmacro MUI_UNSET MUI_FINISHPAGE_TITLE_3LINES
  178.   !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT
  179.   !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_LARGE
  180.   !insertmacro MUI_UNSET MUI_FINISHPAGE_BUTTON
  181.   !insertmacro MUI_UNSET MUI_FINISHPAGE_CANCEL_ENABLED
  182.   !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_REBOOT
  183.   !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_REBOOTNOW
  184.   !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_REBOOTLATER
  185.   !insertmacro MUI_UNSET MUI_FINISHPAGE_REBOOTLATER_DEFAULT
  186.   !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN
  187.     !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_TEXT
  188.     !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_PARAMETERS
  189.     !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_NOTCHECKED
  190.     !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_FUNCTION
  191.   !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME
  192.     !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME_TEXT
  193.     !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
  194.     !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME_FUNCTION
  195.   !insertmacro MUI_UNSET MUI_FINISHPAGE_LINK
  196.     !insertmacro MUI_UNSET MUI_FINISHPAGE_LINK_LOCATION
  197.     !insertmacro MUI_UNSET MUI_FINISHPAGE_LINK_COLOR
  198.   !insertmacro MUI_UNSET MUI_FINISHPAGE_NOREBOOTSUPPORT
  199.  
  200.   !insertmacro MUI_UNSET MUI_FINISHPAGE_ABORTWARNINGCHECK
  201.   !insertmacro MUI_UNSET MUI_FINISHPAGE_CURFIELD_TOP
  202.   !insertmacro MUI_UNSET MUI_FINISHPAGE_CURFIELD_BOTTOM
  203.  
  204. !macroend
  205.  
  206. !macro MUI_PAGE_FINISH
  207.  
  208.   !verbose push
  209.   !verbose ${MUI_VERBOSE}
  210.  
  211.   !insertmacro MUI_PAGE_INIT
  212.   !insertmacro MUI_PAGEDECLARATION_FINISH
  213.  
  214.   !verbose pop
  215.  
  216. !macroend
  217.  
  218. !macro MUI_UNPAGE_FINISH
  219.  
  220.   !verbose push
  221.   !verbose ${MUI_VERBOSE}
  222.  
  223.   !insertmacro MUI_UNPAGE_INIT
  224.   !insertmacro MUI_PAGEDECLARATION_FINISH
  225.  
  226.   !verbose pop
  227.  
  228. !macroend
  229.  
  230.  
  231. ;--------------------------------
  232. ;Page functions
  233.  
  234. !macro MUI_FUNCTION_FINISHPAGE PRE LEAVE LINK
  235.  
  236.   !ifdef MUI_FINISHPAGE_LINK
  237.   
  238.   Function "${LINK}"
  239.   
  240.     ExecShell open "${MUI_FINISHPAGE_LINK_LOCATION}"
  241.   
  242.   FunctionEnd
  243.   
  244.   !endif
  245.   
  246.   Function "${PRE}"
  247.  
  248.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE
  249.  
  250.     ;Set text on Next button
  251.     SendMessage $mui.Button.Next ${WM_SETTEXT} 0 "STR:${MUI_FINISHPAGE_BUTTON}"
  252.     
  253.     ;Enable cancel button if set in script
  254.     !ifdef MUI_FINISHPAGE_CANCEL_ENABLED
  255.       EnableWindow $mui.Button.Cancel 1
  256.     !endif
  257.     
  258.     ;Create dialog
  259.     nsDialogs::Create 1044
  260.     Pop $mui.FinishPage
  261.     nsDialogs::SetRTL $(^RTL)
  262.     SetCtlColors $mui.FinishPage "" "${MUI_BGCOLOR}"
  263.  
  264.     ;Image control
  265.     ${NSD_CreateBitmap} 0u 0u 109u 193u ""
  266.     Pop $mui.FinishPage.Image
  267.     !ifndef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_BITMAP_NOSTRETCH
  268.       ${NSD_SetStretchedImage} $mui.FinishPage.Image $PLUGINSDIR\modern-wizard.bmp $mui.FinishPage.Image.Bitmap
  269.     !else
  270.       ${NSD_SetImage} $mui.FinishPage.Image $PLUGINSDIR\modern-wizard.bmp $mui.FinishPage.Image.Bitmap
  271.     !endif
  272.     
  273.     ;Positiong of controls
  274.  
  275.     ;Title    
  276.     !ifndef MUI_FINISHPAGE_TITLE_3LINES
  277.       !define MUI_FINISHPAGE_TITLE_HEIGHT 28
  278.     !else
  279.       !define MUI_FINISHPAGE_TITLE_HEIGHT 38
  280.     !endif
  281.     
  282.     ;Text
  283.     ;17 = 10 (top margin) + 7 (distance between texts)
  284.     !define /math MUI_FINISHPAGE_TEXT_TOP 17 + ${MUI_FINISHPAGE_TITLE_HEIGHT}
  285.     
  286.     ;Height if space required for radio buttons or check boxes
  287.     !ifndef MUI_FINISHPAGE_TEXT_LARGE
  288.       !define MUI_FINISHPAGE_TEXT_HEIGHT_BUTTONS 40
  289.     !else
  290.       !define MUI_FINISHPAGE_TEXT_HEIGHT_BUTTONS 60
  291.     !endif
  292.     
  293.     !define /math MUI_FINISHPAGE_TEXT_BOTTOM_BUTTONS ${MUI_FINISHPAGE_TEXT_TOP} + ${MUI_FINISHPAGE_TEXT_HEIGHT_BUTTONS}
  294.     
  295.     ;Positioning of radio buttons to ask for a reboot
  296.     !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT
  297.       !define /math MUI_FINISHPAGE_REBOOTNOW_TOP ${MUI_FINISHPAGE_TEXT_BOTTOM_BUTTONS} + 5 ;Distance between text and options
  298.       ;25 = 10 (height of first radio button) + 15 (distance between buttons)
  299.       !define /math MUI_FINISHPAGE_REBOOTLATER_TOP ${MUI_FINISHPAGE_REBOOTNOW_TOP} + 25
  300.     !endif
  301.     
  302.     ;Positioning of checkboxes
  303.     !ifdef MUI_FINISHPAGE_RUN
  304.       !define /math MUI_FINISHPAGE_RUN_TOP ${MUI_FINISHPAGE_TEXT_BOTTOM_BUTTONS} + 5 ;Distance between text and options 
  305.     !endif
  306.     !ifdef MUI_FINISHPAGE_SHOWREADME
  307.       !ifdef MUI_FINISHPAGE_RUN
  308.         ;25 = 10 (height of run checkbox) + 10 (distance between checkboxes)
  309.         !define /math MUI_FINISHPAGE_SHOWREADME_TOP ${MUI_FINISHPAGE_RUN_TOP} + 20
  310.       !else
  311.         !define /math MUI_FINISHPAGE_SHOWREADME_TOP ${MUI_FINISHPAGE_TEXT_BOTTOM_BUTTONS} + 5 ;Distance between text and options    
  312.       !endif
  313.     !endif
  314.  
  315.     !ifndef MUI_FINISHPAGE_RUN & MUI_FINISHPAGE_SHOWREADME
  316.       ;Height if full space is available for text and link
  317.       !ifndef MUI_FINISHPAGE_LINK
  318.         !define MUI_FINISHPAGE_TEXT_HEIGHT 130
  319.       !else
  320.         !define MUI_FINISHPAGE_TEXT_HEIGHT 120
  321.       !endif
  322.     !endif 
  323.     
  324.     !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT
  325.  
  326.       ${if} ${RebootFlag}
  327.  
  328.         ;Title text
  329.         ${NSD_CreateLabel} 120u 10u 195u ${MUI_FINISHPAGE_TITLE_HEIGHT}u "${MUI_FINISHPAGE_TITLE}"
  330.         Pop $mui.FinishPage.Title
  331.         SetCtlColors $mui.FinishPage.Title "" "${MUI_BGCOLOR}"
  332.         CreateFont $mui.FinishPage.Title.Font "$(^Font)" "12" "700"
  333.         SendMessage $mui.FinishPage.Title ${WM_SETFONT} $mui.FinishPage.Title.Font 0
  334.  
  335.         ;Finish text
  336.         ${NSD_CreateLabel} 120u 45u 195u ${MUI_FINISHPAGE_TEXT_HEIGHT_BUTTONS}u "${MUI_FINISHPAGE_TEXT_REBOOT}"
  337.         Pop $mui.FinishPage.Text
  338.         SetCtlColors $mui.FinishPage.Text "" "${MUI_BGCOLOR}"
  339.       
  340.         ;Radio buttons for reboot page
  341.         ${NSD_CreateRadioButton} 120u ${MUI_FINISHPAGE_REBOOTNOW_TOP}u 195u 10u "${MUI_FINISHPAGE_TEXT_REBOOTNOW}"
  342.         Pop $mui.FinishPage.RebootNow
  343.         SetCtlColors $mui.FinishPage.RebootNow "" "${MUI_BGCOLOR}"        
  344.         ${NSD_CreateRadioButton} 120u ${MUI_FINISHPAGE_REBOOTLATER_TOP}u 195u 10u "${MUI_FINISHPAGE_TEXT_REBOOTLATER}"
  345.         Pop $mui.FinishPage.RebootLater
  346.         SetCtlColors $mui.FinishPage.RebootLater "" "${MUI_BGCOLOR}"
  347.         !ifndef MUI_FINISHPAGE_REBOOTLATER_DEFAULT
  348.           SendMessage $mui.FinishPage.RebootNow ${BM_SETCHECK} ${BST_CHECKED} 0
  349.         !else
  350.           SendMessage $mui.FinishPage.RebootLater ${BM_SETCHECK} ${BST_CHECKED} 0
  351.         !endif
  352.         ${NSD_SetFocus} $mui.FinishPage.RebootNow
  353.  
  354.       ${else}
  355.  
  356.     !endif
  357.         
  358.         ;Title text
  359.         ${NSD_CreateLabel} 120u 10u 195u ${MUI_FINISHPAGE_TITLE_HEIGHT}u "${MUI_FINISHPAGE_TITLE}"
  360.         Pop $mui.FinishPage.Title
  361.         SetCtlColors $mui.FinishPage.Title "" "${MUI_BGCOLOR}"
  362.         CreateFont $mui.FinishPage.Title.Font "$(^Font)" "12" "700"
  363.         SendMessage $mui.FinishPage.Title ${WM_SETFONT} $mui.FinishPage.Title.Font 0
  364.  
  365.         ;Finish text
  366.         !ifndef MUI_FINISHPAGE_RUN & MUI_FINISHPAGE_SHOWREADME
  367.           ${NSD_CreateLabel} 120u ${MUI_FINISHPAGE_TEXT_TOP}u 195u ${MUI_FINISHPAGE_TEXT_HEIGHT}u "${MUI_FINISHPAGE_TEXT}"
  368.         !else
  369.           ${NSD_CreateLabel} 120u ${MUI_FINISHPAGE_TEXT_TOP}u 195u ${MUI_FINISHPAGE_TEXT_HEIGHT_BUTTONS}u "${MUI_FINISHPAGE_TEXT}"
  370.         !endif
  371.         Pop $mui.FinishPage.Text
  372.         SetCtlColors $mui.FinishPage.Text "" "${MUI_BGCOLOR}"
  373.     
  374.         ;Checkboxes
  375.         !ifdef MUI_FINISHPAGE_RUN
  376.           ${NSD_CreateCheckbox} 120u ${MUI_FINISHPAGE_RUN_TOP}u 195u 10u "${MUI_FINISHPAGE_RUN_TEXT}"
  377.           Pop $mui.FinishPage.Run
  378.           SetCtlColors $mui.FinishPage.Run "" "${MUI_BGCOLOR}"
  379.           !ifndef MUI_FINISHPAGE_RUN_NOTCHECKED
  380.             SendMessage $mui.FinishPage.Run ${BM_SETCHECK} ${BST_CHECKED} 0
  381.           !endif
  382.           ${NSD_SetFocus} $mui.FinishPage.Run
  383.         !endif
  384.         !ifdef MUI_FINISHPAGE_SHOWREADME
  385.           ${NSD_CreateCheckbox} 120u ${MUI_FINISHPAGE_SHOWREADME_TOP}u 195u 10u "${MUI_FINISHPAGE_SHOWREADME_TEXT}"
  386.           Pop $mui.FinishPage.ShowReadme
  387.           SetCtlColors $mui.FinishPage.ShowReadme "" "${MUI_BGCOLOR}"
  388.           !ifndef MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
  389.             SendMessage $mui.FinishPage.ShowReadme ${BM_SETCHECK} ${BST_CHECKED} 0
  390.           !endif
  391.           !ifndef MUI_FINISHPAGE_RUN
  392.             ${NSD_SetFocus} $mui.FinishPage.ShowReadme
  393.           !endif
  394.         !endif
  395.     
  396.         ;Link
  397.         !ifdef MUI_FINISHPAGE_LINK
  398.           ${NSD_CreateLink} 120u 175u 195u 10u "${MUI_FINISHPAGE_LINK}"
  399.           Pop $mui.FinishPage.Link
  400.           SetCtlColors $mui.FinishPage.Link "${MUI_FINISHPAGE_LINK_COLOR}" "${MUI_BGCOLOR}"
  401.           ${NSD_OnClick} $mui.FinishPage.Link "${LINK}"
  402.         !endif
  403.         
  404.     !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT        
  405.       ${endif}
  406.     !endif
  407.  
  408.     !ifdef MUI_FINISHPAGE_CANCEL_ENABLED
  409.       StrCpy $mui.FinishPage.DisableAbortWarning "1"
  410.     !endif
  411.  
  412.     ;Show page
  413.     Call ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}muiPageLoadFullWindow
  414.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW
  415.     nsDialogs::Show
  416.     Call ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}muiPageUnloadFullWindow 
  417.     
  418.     !ifdef MUI_FINISHPAGE_CANCEL_ENABLED
  419.       StrCpy $mui.FinishPage.DisableAbortWarning ""
  420.     !endif
  421.     
  422.     ;Delete image from memory
  423.     ${NSD_FreeImage} $mui.FinishPage.Image.Bitmap
  424.     
  425.     !insertmacro MUI_UNSET MUI_FINISHPAGE_TITLE_HEIGHT
  426.     !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_TOP
  427.     !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_HEIGHT
  428.     !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_HEIGHT_BUTTONS
  429.     !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_BOTTOM_BUTTONS
  430.     !insertmacro MUI_UNSET MUI_FINISHPAGE_REBOOTNOW_TOP
  431.     !insertmacro MUI_UNSET MUI_FINISHPAGE_REBOOTLATER_TOP
  432.     !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_TOP
  433.     !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME_TOP
  434.  
  435.   FunctionEnd
  436.  
  437.   Function "${LEAVE}"
  438.  
  439.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE
  440.  
  441.     !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT
  442.  
  443.       ;Check whether the user has chosen to reboot the computer
  444.       ${if} ${RebootFlag}
  445.         SendMessage $mui.FinishPage.RebootNow ${BM_GETCHECK} 0 0 $mui.FinishPage.ReturnValue
  446.         ${if} $mui.FinishPage.ReturnValue = ${BST_CHECKED}
  447.           Reboot
  448.         ${else}
  449.           Return
  450.         ${endif}
  451.       ${endif}
  452.  
  453.     !endif
  454.  
  455.     ;Run functions depending on checkbox state 
  456.  
  457.     !ifdef MUI_FINISHPAGE_RUN
  458.     
  459.       SendMessage $mui.FinishPage.Run ${BM_GETCHECK} 0 0 $mui.FinishPage.ReturnValue
  460.  
  461.       ${if} $mui.FinishPage.ReturnValue = ${BST_CHECKED}
  462.         !ifndef MUI_FINISHPAGE_RUN_FUNCTION
  463.           !ifndef MUI_FINISHPAGE_RUN_PARAMETERS
  464.             Exec "$\"${MUI_FINISHPAGE_RUN}$\""
  465.           !else
  466.             Exec "$\"${MUI_FINISHPAGE_RUN}$\" ${MUI_FINISHPAGE_RUN_PARAMETERS}"
  467.           !endif
  468.         !else
  469.           Call "${MUI_FINISHPAGE_RUN_FUNCTION}"
  470.         !endif
  471.       ${endif}
  472.  
  473.     !endif
  474.  
  475.     !ifdef MUI_FINISHPAGE_SHOWREADME
  476.  
  477.       SendMessage $mui.FinishPage.ShowReadme ${BM_GETCHECK} 0 0 $mui.FinishPage.ReturnValue
  478.  
  479.       ${if} $mui.FinishPage.ReturnValue = ${BST_CHECKED}
  480.         !ifndef MUI_FINISHPAGE_SHOWREADME_FUNCTION
  481.           ExecShell open "${MUI_FINISHPAGE_SHOWREADME}"
  482.         !else
  483.           Call "${MUI_FINISHPAGE_SHOWREADME_FUNCTION}"
  484.         !endif
  485.       ${endif}
  486.  
  487.     !endif
  488.  
  489.   FunctionEnd
  490.  
  491. !macroend
  492.